import axios from '../config/axios.default.config'
import globalApi from '@/config/globalApi'

export default class Sys_AdminService {
  /**
   * 获取所有菜单
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getMenus() {
    return axios.get(globalApi.admin.getMenus)
  }

  /**
   * 创建菜单
   * @param menuData
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static createMenu(menuData) {
    return axios.post(globalApi.admin.createMenu, menuData)
  }

  /**
   * 更新菜单
   * @param menuData
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static updateMenu(menuData) {
    return axios.post(globalApi.admin.updateMenu, menuData)
  }

  /**
   * 删除菜单
   * @param menuId
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static deleteMenu(menuId) {
    return axios.delete(`${globalApi.admin.deleteMenu}/${menuId}`)
  }

  /**
   * 获取未过审的用户信息
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getDisapprovedUsers(args) {
    return axios.get(globalApi.admin.userAudits, { params: args })
  }

  /**
   * 用户过审
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static setUserPass(data) {
    return axios.post(globalApi.admin.userAudits, data)
  }

  /**
   * 获取未过审的博客信息
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getDisapprovedBlogs(args) {
    return axios.get(globalApi.admin.blogAudits, { params: args })
  }

  /**
   * 文章过审
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static setBlogPass(data) {
    return axios.post(globalApi.admin.blogAudits, data)
  }

  /**
   * 获取文章举报信息
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getTipOffBlogs(args) {
    return axios.get(globalApi.admin.tipOffBlog, { params: args })
  }

  /**
   * 删除文章举报信息
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static deleteBlogTipOff(data) {
    return axios.delete(globalApi.admin.tipOffBlog, { data: data })
  }

  /**
   * 获取评论举报信息
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getTipOffComment(args) {
    return axios.get(globalApi.admin.tipOffComment, { params: args })
  }

  /**
   * 删除评论举报信息
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static deleteCommentTipOff(data) {
    return axios.delete(globalApi.admin.tipOffComment, { data: data })
  }

  /**
   * 获取所有用户信息
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getUsers(args) {
    return axios.get(globalApi.admin.sys_userManager, { params: args })
  }

  /**
   * 获取所有博客信息
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getBlogs(args) {
    return axios.get(globalApi.admin.sys_blogManager, { params: args })
  }

  /**
   * 冻结账号
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static freezeUser(data) {
    return axios.post(globalApi.admin.sys_freeze, data)
  }

  /**
   * 解冻账号
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static unFreezeUser(data) {
    return axios.put(globalApi.admin.sys_freeze, data)
  }

  /**
   * 重审账号
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static retrialUser(data) {
    return axios.put(globalApi.admin.userAudits, data)
  }

  /**
   * 重审文章
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static retrialBlog(data) {
    return axios.put(globalApi.admin.blogAudits, data)
  }

  /**
   * 设置管理员
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static setAdmin(data) {
    return axios.post(globalApi.admin.sys_admin, data)
  }

  /**
   * 取消管理员
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static removeAdmin(data) {
    return axios.put(globalApi.admin.sys_admin, data)
  }

  /**
   * 删除账号 不删文章 只删除账号和用户详情信息
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static deleteUser(data) {
    return axios.delete(globalApi.admin.sys_user, { data: data })
  }

  /**
   * 接删除文章
   * @param data
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static deleteBlog(data) {
    return axios.delete(globalApi.admin.blogAudits, { data: data })
  }

  /**
   * 获取访客 ip 信息
   * @param args
   * @return {Promise<axios.AxiosResponse<any>>}
   */
  static getVisitorIps(args) {
    return axios.get(globalApi.admin.getVisitorIps, { params: args })
  }
}
